At present, with the development of online communities and large-scale online games on the interne, the demand for multi-person voice is kept rising. In the conventional method, the streaming media system based on the Peer to Peer (P2P) communication network system may implement multi-person interconnection. The P2P streaming media system may be classified into three types according to topology structure: a system with a single tree topology, a system with a multi-tree topology and a system with a network topology.
In the P2P streaming media data distribution system based on the single tree topology, the data stream is transmitted from a parent peer to a child peer of a distribution tree.
In the P2P streaming media data distribution system based on the multi-tree topology, the multi tree topology makes a same peer set in different distribution trees. In this way, when a distribution tree is failed temporally, the peer may still obtain data from other trees. In addition, a peer of a tree which needs not to forward data stream and locates at a position of a leaf peer may locate at a position of an intermediate peer of another tree which needs to forward data stream. Thus, compared with the single tree topology, peer load balance performance of the multi-tree topology is greatly improved. For example, a same peer may be a child peer of two multicast trees, or be an intermediate peer of another multicast tree other than the two trees at the same time.
In the P2P streaming media system based on the network topology, a peer may collectively select one or more peers from a cooperative peer set as its serving peers. Different from the multi-tree topology, the cooperative peer set is not fixed in the network topology, and is changed with joining in/exiting state of the peer, load, packet loss rate, and so on. Besides, peers do not observe a strict parent-child relationship, and one peer may send data to or receive data from a peer. The problem of network topology is how to select a peer and how to dispatch data.
In the conventional method, the multi-person interconnection is implemented with the multi-channel audio mixing technique, which is also called multi-channel voice synthesis technique. The technique is on the basis of a server-client architecture, i.e., S-C architecture. Each peer establishes a connection relationship with the server, and the server implements the multi-channel voice mixing and then performs the distribution. Generally, the voice mixing schemes all adopt time domain sample value sum as its basic processing method. Since there is a quantization upper limit and lower limit in the digital audio signal, stack operation will cause a result overflow. Regarding to the result overflow, an overflow detection is first performed, and then saturation operation is utilized, i.e. the result exceeding the upper limit is set as an upper limit value. The upper limit value depends on the number of bits of a voice coder. In the same way, the result less than the lower limit is set as a lower limit value. This operation destroys the original time domain characteristics of the audio signals, introduces noises, and results in a phenomenon of popping sounds and discontinuous voices in some systems. With the increase of persons participating in the voice mixing, the frequency of overflow also increases. Meanwhile, because there is an upper limit of this method, and generally speaking, the upper limit is very low. In general, there is a phenomenon that many noises and discontinuous voices are generated when four clients participate in the voice mixing, resulting in that the voice flow can't be differentiated. In order to solve the above problem, the multi-channel audio mixing technique adopts a weighting calculation method.
In the process for achieving the technical solutions of the present invention, the inventor discovers that the method for setting up a server to mix voices and perform multi-channel distribution needs many server costs.